.flex-display(@display: flex){
	display: ~"-webkit-@{display}";
	display: ~"-moz-@{display}";
	display: ~"-ms-@{display}box"; // IE10 uses -ms-flexbox
	display: ~"-ms-@{display}"; // IE11
	display: @display;
}

.flex(@columns: initial){
	-webkit-flex: @columns;
	-moz-flex: @columns;
	-ms-flex: @columns;
	flex: @columns;
}

.flex-direction(@direction: row){
	-webkit-flex-direction: @direction;
	-moz-flex-direction: @direction;
	-ms-flex-direction: @direction;
	flex-direction: @direction;
}

.flex-wrap(@wrap: nowrap){
	-webkit-flex-wrap: @wrap;
	-moz-flex-wrap: @wrap;
	-ms-flex-wrap: @wrap;
	flex-wrap: @wrap;
}

.flex-flow(@flow){
	-webkit-flex-flow: @flow;
	-moz-flex-flow: @flow;
	-ms-flex-flow: @flow;
	flex-flow: @flow;
}

.flex-order(@order: 0){
	-webkit-order: @order;
	-moz-order: @order;
	-ms-order: @order;
	order: @order;
}

.flex-grow(@grow: 0){
	-webkit-flex-grow: @grow;
	-moz-flex-grow: @grow;
	-ms-flex-grow: @grow;
	flex-grow: @grow;
}

.flex-shrink(@shrink: 1){
	-webkit-flex-shrink: @shrink;
	-moz-flex-shrink: @shrink;
	-ms-flex-shrink: @shrink;
	flex-shrink: @shrink;
}

.flex-basis(@width: auto){
	-webkit-flex-basis: @width;
	-moz-flex-basis: @width;
	-ms-flex-basis: @width;
	flex-basis: @width;
}

.justify-content(@justify: flex-start){
	-webkit-justify-content: @justify;
	-moz-justify-content: @justify;
	-ms-justify-content: @justify;
	justify-content: @justify;
}

.align-content(@align: stretch){
	-webkit-align-content: @align;
	-moz-align-content: @align;
	-ms-align-content: @align;
	align-content: @align;
}

.align-items(@align: stretch){
	-webkit-align-items: @align;
	-moz-align-items: @align;
	-ms-align-items: @align;
	align-items: @align;
}

.align-self(@align: auto){
	-webkit-align-self: @align;
	-moz-align-self: @align;
	-ms-align-self: @align;
	align-self: @align;
}